const express = require('express')
const router = express.Router()
/**
* @typedef admin_user
* @property {integer} _id - 图片_id 添加不用_id
* @property {string} userName.required - 用户姓名
* @property {string} password.required - 用户密码 
*/
/**
* This function comment is parsed by doctrine
* @route POST /admin_users
* @group 管理员 - 增加管理员信息
* @returns {model} 200 - 新增管理员信息
* @returns {Error}  500 - 服务器出现错误
*/
//增加    
router.post('/', async (req, res) => {
  const model = await req.Model.create(req.body)
  res.send(model)
})
/**
* This function comment is parsed by doctrine
* @route GET /admin_users
* @group 管理员 - 查找所有管理员信息
* @returns {model} 200 - 所有管理员信息
* @returns {Error}  500 - 服务器出现错误
*/
//查找所有
router.get('/', async (req, res) => {
  let queryOptions = {}
  if (req.Model.modelName === 'Category') {
    queryOptions.populate = 'parent'
  }
  if (req.Model.modelName === 'Article') {
    queryOptions.populate = 'categories'
  }
  const items = await req.Model.find().setOptions(queryOptions)
  res.send(items)
})
/**
* This function comment is parsed by doctrine
* @route GET /admin_users/:id
* @group 管理员 - 查找某个管理员信息
* @param {string} id.params.required - 管理员_id
* @returns {model} 200 - 单个管理员信息
* @returns {Error}  500 - 服务器出现错误
*/
//查找
router.get('/:id', async (req, res) => {
  const model = await req.Model.findById(req.params.id)
  res.send(model)
})
/**
* This function comment is parsed by doctrine
* @route PUT /admin_users/:id
* @group 管理员 - 编辑某个管理员信息
* @param {string} id.params.required - 管理员_id
* @returns {model} 200 - 单个管理员信息
* @returns {Error}  500 - 服务器出现错误
*/
//编辑
router.put('/:id', async (req, res) => {
  const model = await req.Model.findByIdAndUpdate(req.params.id, req.body)
  res.send(model)
})
/**
* This function comment is parsed by doctrine
* @route DELETE /admin_users/:id
* @group 管理员 - 删除某个管理员信息
* @param {string} id.params.required - 管理员_id
* @returns {model} 200 - 是否成功
* @returns {Error}  500 - 服务器出现错误
*/
//删除
router.delete('/:id', async (req, res) => {
  await req.Model.findByIdAndDelete(req.params.id)
  res.send({
    success: true
  })
})

module.exports = router
